package com.ssy.lingxi.member.merchant.service.web;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.member.merchant.model.vo.basic.request.CommonIdRequest;
import com.ssy.lingxi.member.merchant.model.vo.basic.request.MemberVisitAddOrUpdateRequest;
import com.ssy.lingxi.member.merchant.model.vo.basic.request.MemberVisitListRequest;
import com.ssy.lingxi.member.merchant.model.vo.basic.response.MemberVisitListResponse;
import com.ssy.lingxi.member.merchant.model.vo.basic.response.MemberVisitTypeItemResponse;
import com.ssy.lingxi.member.merchant.model.vo.validate.response.MemberClassifyCategoryItemVO;
import org.springframework.http.HttpHeaders;

import java.util.List;

/**
 * 会员能力 - 会员拜访
 * @author 万宁
 * @version 2.0.0
 * @date 2021-05-18
 */
public interface IMemberVisitService {

    /**
     * 查询会员拜访列表
     * @author wrc
     * @date 2020/6/19
     */
    Wrapper<PageData<MemberVisitListResponse>> memberVisitList(MemberVisitListRequest request, UserLoginCacheDTO sysUser);

    /**
     * 查询会员拜访详情
     * @author wrc
     * @date 2020/8/5
     */
    Wrapper<MemberVisitListResponse> memberVisitDetails(Long id);

    /**
     * 查询全部会员拜访
     * @author wrc
     * @date 2020/8/5
     */
    Wrapper<List<MemberVisitListResponse>> memberVisitAll(UserLoginCacheDTO sysUser );

    /**
     * 添加/修改会员拜访
     * @author wrc
     * @date 2020/6/19
     */
    Wrapper<Void> memberVisitAddOrUpdate(MemberVisitAddOrUpdateRequest request, UserLoginCacheDTO sysUser);

    /**
     * 删除会员拜访
     * @author wrc
     * @date 2020/6/19
     */
    Wrapper<Void> memberVisitDelete(CommonIdRequest request);

    /**
     * 查询拜访类型, 拜访级别枚举
     * @param headers
     * @return
     */
    Wrapper<MemberVisitTypeItemResponse> getMemberVisitOfVisitTypeItems(HttpHeaders headers);
}
